package com.train.mgr.modules.biz.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableField;
import com.train.common.db.entity.BaseEntity;
import java.io.Serializable;

import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 课程学员学习统计表
 * </p>
 *
 * @author cxg
 * @date 2025-10-11
 */
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("a_stat_course_trainee")
public class StatCourseTrainee extends BaseEntity<StatCourseTrainee> {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 学员名称
     */
    @TableField("nick_name")
    @ApiModelProperty("学员名称")
    private String nickName;

    /**
     * 学员账号
     */
    @TableField("username")
    @ApiModelProperty("学员账号")
    private String username;

    /**
     * 分组ID
     */
    @TableField("group_id")
    @ApiModelProperty("分组ID")
    private Long groupId;

    /**
     * 课程ID
     */
    @TableField("course_id")
    @ApiModelProperty("课程ID")
    private Long courseId;

    /**
     * 客户ID
     */
    @TableField("customer_id")
    @ApiModelProperty("客户ID")
    private Long customerId;

    /**
     * 加入时间
     */
    @TableField("join_time")
    @ApiModelProperty("加入时间")
    private String joinTime;

    /**
     * 完成时间
     */
    @TableField("finish_time")
    @ApiModelProperty("完成时间")
    private String finishTime;

    /**
     * 课程完成率
     */
    @TableField("course_finish_rate")
    @ApiModelProperty("课程完成率")
    private String courseFinishRate;

    /**
     * 综合得分
     */
    @TableField("course_overall_score")
    @ApiModelProperty("综合得分")
    private BigDecimal courseOverallScore;

    /**
     * 课程学习时长
     */
    @TableField("course_learn_duration")
    @ApiModelProperty("课程学习时长")
    private BigDecimal courseLearnDuration;

    /**
     * 课程练习次数
     */
    @TableField("course_exercises_num")
    @ApiModelProperty("课程练习次数")
    private Integer courseExercisesNum;

    /**
     * 话术跟读次数
     */
    @TableField("read_repeated_times")
    @ApiModelProperty("话术跟读次数")
    private Integer readRepeatedTimes;

    /**
     * 话术跟读平均分
     */
    @TableField("read_avg_score")
    @ApiModelProperty("话术跟读平均分")
    private BigDecimal readAvgScore;

    /**
     * 话术跟读平均最高分
     */
    @TableField("read_max_score")
    @ApiModelProperty("话术跟读平均最高分")
    private BigDecimal readMaxScore;

    /**
     * 话术跟读及格率
     */
    @TableField("read_pass_rate")
    @ApiModelProperty("话术跟读及格率")
    private String readPassRate;

    /**
     * 脱稿演练次数
     */
    @TableField("nobook_times")
    @ApiModelProperty("脱稿演练次数")
    private Integer nobookTimes;

    /**
     * 脱稿演练平均分
     */
    @TableField("nobook_avg_score")
    @ApiModelProperty("脱稿演练平均分")
    private BigDecimal nobookAvgScore;

    /**
     * 脱稿演练平均最高分
     */
    @TableField("nobook_max_score")
    @ApiModelProperty("脱稿演练平均最高分")
    private BigDecimal nobookMaxScore;

    /**
     * 脱稿演练及格率
     */
    @TableField("nobook_pass_rate")
    @ApiModelProperty("脱稿演练及格率")
    private String nobookPassRate;

    /**
     * 模拟对话次数
     */
    @TableField("dialogue_times")
    @ApiModelProperty("模拟对话次数")
    private Integer dialogueTimes;

    /**
     * 模拟对话平均分
     */
    @TableField("dialogue_avg_score")
    @ApiModelProperty("模拟对话平均分")
    private BigDecimal dialogueAvgScore;

    /**
     * 模拟对话平均最高分
     */
    @TableField("dialogue_max_score")
    @ApiModelProperty("模拟对话平均最高分")
    private BigDecimal dialogueMaxScore;

    /**
     * 模拟对话及格率
     */
    @TableField("dialogue_pass_rate")
    @ApiModelProperty("模拟对话及格率")
    private String dialoguePassRate;

    /**
     * 是否删除（0:否，1：是）
     */
    @TableField("is_deleted")
    private Boolean isDeleted;



}
